﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DataBaseManager;

namespace BLGPS
{
    public static class ASD
    {
       /* public static T ObtenerPorId<T>(this List<T> list, decimal id)
        {
            foreach (T m in list)
            {
                if (((dynamic)m).Id == id) return m;
            }
            return default(T);
        }*/
    }

    public class ColeccionUsuario:List<Usuario>
    {
        public static Usuario Autenticar(string username,string pass)
        {
#warning implementar
            return new Usuario() { Id = 1, Nombre = "Martin", Permisos = new ColeccionPermisos() {Permiso.Basico ,Permiso.ABMVehiculoIntranet, Permiso.ABMVehiculoEmpresa , Permiso.ABMChofer, Permiso.ABMDispositivo }, Perfil=Perfil.Intranet };        
        }

        public static ColeccionUsuario CargarTodos()
        {
            ParameterManager parameters = new ParameterManager();
            parameters.Add("activo","S", true);

            DataTable dt= BaseDatos.DB.Select(MyTables.Usuario, parameters);
            return BaseDatos.DB.Load<ColeccionUsuario, Usuario>(dt, delegate(Usuario u, DataRow dr) {
                if (dr["Perfil"].ToString() == "A")
                {
                    u.Perfil = Perfil.Intranet;
                }
                else
                {
                    u.Perfil = Perfil.Empresa;
                }
                u.Activo = (dr["activo"].ToString() == "S");
                }); 
        }

        public Usuario ObtenerPorId(decimal id)
        {           
            foreach (Usuario m in this)
            {
                if (m.Id == id) return m;
            }
            return null;
        }
    }
}
